#define _CRT_SECURE_NO_WARNINGS

#include "ListNode.h"

void testPushFront()
{
	LTNode* node = InitLTNode();

	LTNodePushFront(node, 1);
	LTNodePushFront(node, 2);
	LTNodePushFront(node, 3);
	LTNodePushFront(node, 4);
	LTNodePushFront(node, 5);
	PrintLTNode(node);

}
void testPushBack()
{
	LTNode* node = InitLTNode();

	LTNodePushBack(node, 1);
	LTNodePushBack(node, 2);
	LTNodePushBack(node, 3);
	LTNodePushBack(node, 4);
	LTNodePushBack(node, 5);
	PrintLTNode(node);

}
void testInsert()
{
	LTNode* node = InitLTNode();

	/*InsertLTNode(node, 1);
	InsertLTNode(node, 2);
	InsertLTNode(node, 3);
	InsertLTNode(node, 4);
	InsertLTNode(node, 5);*/
	InsertLTNode(node->next, 1);
	InsertLTNode(node->next, 2);
	InsertLTNode(node->next, 3);
	InsertLTNode(node->next, 4);
	InsertLTNode(node->next, 5);
	PrintLTNode(node);

}

void testFindAndErase()
{
	LTNode* node = InitLTNode();

	LTNodePushBack(node, 1);
	LTNodePushBack(node, 2);
	LTNodePushBack(node, 3);
	LTNodePushBack(node, 4);
	LTNodePushBack(node, 5);
	PrintLTNode(node);
	LTNode* pos = LTNodeFind(node, 3);
	if (pos != NULL) {
		//printf("%d\n", pos->data);
		LTNodeErase(pos);
	}
	PrintLTNode(node);

	pos = LTNodeFind(node, 4);
	if (pos != NULL)
	{
		InsertLTNode(pos, 1000);
	}
	PrintLTNode(node);

}

void testLTPop()
{
	LTNode* node = InitLTNode();

	LTNodePushFront(node, 1);
	LTNodePushFront(node, 2);
	LTNodePushFront(node, 3);
	LTNodePushFront(node, 4);
	LTNodePushFront(node, 5);
	PrintLTNode(node);

	LTNodePopFront(node);
	PrintLTNode(node);

	LTNodePopBack(node);
	PrintLTNode(node);

	LTNodePopBack(node);
	PrintLTNode(node);
	LTNodePopBack(node);
	PrintLTNode(node);
	LTNodePopBack(node);
	PrintLTNode(node);
	LTNodePopBack(node);
	PrintLTNode(node);

	LTNodePopFront(node);
	PrintLTNode(node);
}

void testDestroy()
{
	LTNode* node = InitLTNode();

	LTNodePushFront(node, 1);
	LTNodePushFront(node, 2);
	LTNodePushFront(node, 3);
	LTNodePushFront(node, 4);
	LTNodePushFront(node, 5);
	PrintLTNode(node);

	DestroyLTNode(node);
}
int main()
{
	//testPushFront();
	//testPushBack();
	//testInsert();
	//testFindAndErase();
	//testLTPop();
	testDestroy();
	return 0;
}